Predicting near-future photovoltaic generation

ABSTRACT

Systems and automated methods for predicting photovoltaic (PV) generation are provided. Weather forecast data and present-day and historical PV generation data are provided to respective predictors. The predictors derive weighted predictions that are used to calculate a Bayesian model average. Near-future generation by the PV system is predicted using the Bayesian model average. Production rates, worker scheduling, hours of operation and other planning decisions can be made in accordance with the predicted near-future generation.

BACKGROUND

A photovoltaic (PV) system generates electrical energy by directconversion of incident sunlight or other photonic energy. However, PVelectrical output varies significantly in accordance with daylighthours, weather patterns or other sunlight time/intensity factors. Thus,matching PV generation to the needs of a particular load is subject touncertainty. The present teachings address the foregoing and relatedconcerns.

BRIEF DESCRIPTION OF THE DRAWINGS

The present embodiments will now be described, by way of example, withreference to the accompanying drawings, in which:

FIG. 1 depicts a block schematic diagram of a photovoltaic predictionsystem according to one example of the present teachings;

FIG. 2 depicts a diagram of illustrative generation data and a processfor deriving generation profiles;

FIG. 3 depicts a diagram of illustrative weather data and a process forderiving a trained Bayesian model;

FIG. 4 depicts a process for deriving a set of motifs;

FIG. 5A depicts a flow diagram f a method in accordance with the presentteachings;

FIG. 5B depicts a flow diagram of a method that can be performed as acontinuation of, or distinct from, the method of FIG. 5A.

FIG. 6 depicts a block schematic diagram of a computer-based systemaccording to another example.

DETAILED DESCRIPTION Introduction

Systems and automated methods for predicting photovoltaic (PV)generation are provided. Weather forecast data, and present-day andhistorical PV generation data, are provided to respective predictors(i.e., models). The predictors derive weighted predictions that are usedto calculate a Bayesian model average. Near-future generation by the PVsystem is predicted using the Bayesian model average. Production rates,worker scheduling, hours of operation and other planning decisions canbe made in accordance with the predicted near-future generation.

In one example, a method is performed using a computer, the methodincluding deriving a first weighted prediction using weather forecastdata for a present day. The method also includes deriving a secondweighted prediction using present day generation data for a photovoltaicsystem. The present day generation data is acquired by way ofinstrumentation coupled the computer and to the photovoltaic system. Themethod also includes deriving a third weighted prediction using recenthistorical generation data for the photovoltaic system. The method alsoincludes deriving a Bayesian model average of at least the first and thesecond and the third weighted predictions. The method further includespredicting a near-future generation by the photovoltaic system using theBayesian model average.

In another example, a system includes a photovoltaic device, andinstrumentation to provide data corresponding to a present generation ofelectrical energy by the photovoltaic device. The system also includes acomputer to receive the data from the instrumentation. The computer isto derive a prediction of near-future generation by the photovoltaicdevice using the present generation data and recent historicalgeneration data and weather forecast data.

In still another example, a storage media including a program code, theprogram code is configured to cause a processor to derive a firstweighted prediction using weather forecast data. The program code isalso configured to cause the processor to derive a second weightedprediction using present day generation data for a photovoltaic system.The program code is also configured to cause the processor to derive athird weighted prediction using recent historical generation data forthe photovoltaic system. The program code is further configured to causethe processor to predict a near-future generation by the photovoltaicsystem by way of calculating a Bayesian model average of the first andthe second and the third weighted predictions.

Profile Discovery

An initial operation contemplated by the present teachings is that ofprofile discovery, which takes as input the available historical PVgeneration data and outputs characteristic profiles. Such profiles canbe of any suitable, equal-length time span (e.g., hours, part-day,multiple days, and so on). In an illustrative example, day-long profilesare described. If the actual PV generation “g” (e.g., kilowatt hours)for each “j-th” hour for an entire “i-th” day is denoted by the vector{right arrow over (X)}_(i), then such can be written as:

{right arrow over (X)}_(i) =

g _(i,1) , g _(i,2) , . . . , g _(i,J)

  (1)

Thus, each day can be defined by a vector {right arrow over (X)}_(i) ofup twenty-four dimensions, each dimension being the total electricalgeneration value (e.g., kilowatt-hours) for a corresponding hour of thatday. The entire PV dataset for “T” days (e.g., one year, one season, orone month) can be expressed as a matrix A:

A=

{right arrow over (X)} ₁ , {right arrow over (X)} ₂ , . . . , {rightarrow over (X)} _(T)

^(T)   (2)

The dataset, matrix A, is clustered using Euclidean distance between the“J” dimensional feature vectors (i.e., power generation for each day) byk-means (Lloyd 1982) algorithm into “N” clusters. The value of “N” is aparameter in the ensemble method and is estimated by minimizing thecross-validation error of the ensemble, keeping other parameters fixed.This yields “N” day-long profiles D_(i). The complete set (matrix) ofprofiles D is denoted by:

D={D₁, D₂, . . . , D_(N)}  (3)

and the corresponding set of centroids μ is denoted by:

μ={μ₁, μ₂, . . . , μ_(N)}  (4)

This step is required to be run only once on the entire historical PVgeneration dataset A. In one example, a total of ten daily generationprofiles are derived. Other suitable sets can also be used.Naïve Bayesian Predictor

The naïve Bayesian (NB) predictor estimates the mixture coefficientsgiven the weather forecast data, assuming conditional independence offeatures (it assumed that temperature and humidity follow Gaussiandistributions). If all of the training information obtained from theweather-PV table is denoted, such as the likelihood functions and priorsof the profiles, by 65 (gamma), and the weather forecast by:

ρ_(i,j)=

ρ_(i,j+1,1), ρ_(i,j+2,2), . . . , ρ_(i,j,j−j)

  (5)

where is the weather forecast ρ at the “j-th” hour of the “i-th” day forthe rest of the day. Then, the posterior probability of profile labels,for each remaining time slot, is computed as:

Pr(D _(n)|ρ_(i,j+t,t),γ)∝(Π_(k) L(D _(n)|ρ_(i,j+t,t,) ,[k])Pr(D _(n))  (6)

finally giving:

$\begin{matrix}{{\Pr \left( {\left. D_{n} \middle| \rho_{i,j} \right.,\gamma,C_{1}} \right)} = \frac{\sum\limits_{t = 1}^{i - j}{\Pr \left( {\left. D_{n} \middle| \rho_{i,{j + t},t} \right.,\gamma} \right)}}{\sum\limits_{n = 1}^{N}{\sum\limits_{t = 1}^{j - j}{\Pr \left( {\left. D_{n} \middle| \rho_{i,{j + t},t} \right.,\gamma} \right)}}}} & (7)\end{matrix}$

Where C₁ indicates classifier 1.k-Nearest Neighbor Predictor

The k-nearest neighbor (k-NN) (Dudani 1976) predictor uses prior PVgeneration during the same day as a feature, and assigns mixingcoefficients based on Euclidean distance from centroids of discovereddaily profiles. In order to make a prediction at the “j-th” hour of the“i-th” day, for the rest of that day, the already observed PV outputvalues “g” (e.g., kilowatt-hours) for that day:

{right arrow over (X)} _(i)(1:j)=

g _(i,1) , g _(i,2) , . . . , g _(i,j)

  (8)

Next, the Euclidean distance of this vector to the truncated centroidvectors (first “j” dimensions) of the PV profiles is found, and theprobability of the “i-th” day belonging to a cluster as given by thefollowing equation:

$\begin{matrix}{{\Pr \left( {\left. {{\overset{\rightarrow}{X}}_{i} \in D_{n}} \middle| {{\overset{\rightarrow}{X}}_{i}\left( {1\text{:}j} \right)} \right.,C_{2}} \right)} = \frac{1}{\phi {{{{\overset{\rightarrow}{X}}_{i}\left( {1\text{:}j} \right)} - {{\overset{\rightarrow}{\mu}}_{n}\left( {1\text{:}j} \right)}}}_{2}}} & (9)\end{matrix}$

Where φ is a normalizing constant found as:

$\begin{matrix}{\phi = {\sum_{n}\frac{1}{{{{{\overset{\rightarrow}{X}}_{i}\left( {1\text{:}j} \right)} - {{\overset{\rightarrow}{\mu}}_{n}\left( {1\text{:}j} \right)}}}_{2}}}} & (10)\end{matrix}$

Where C₂ indicates classifier 2.

Motif Predictor

The motif predictor (MP) exploits the sequentiality in PV generationbetween successive days to find motifs (i.e., repeated patterns) and togive membership estimates of the daily profiles based on such motifs.For this step, the entire PV generation data is considered as a streamof profile labels. For non-limiting example, alphabetic letters (labels)“A” through “J” can be assigned where ten respective day-long profileshave been defined. Additionally, a “window size” is defined as: themaximum number “W” of past days that can influence the profile. Thestream (i.e., sequential order of labels) as a group of vectors of theform:

d _(i−1) , d _(i−2) , . . . , d _(i−w)

  (11)

Where: d_(j)εD(j<1) denotes the profile label of the “j-th” day. Varying(or “sliding”) the window of size “W” provides different values of suchvectors and the resulting distinct windows can be “mined” for motifs. Inone example, window size “W” equals five days. Other suitable windowsizes can also be used.

The foregoing results in the following definition: For a windowW_(i)(|W_(i)|=W) containing labels

d_(i−w), . . . , d_(i−2), d_(i−1)

, eligible episodes are defined as all such sequences ep=

d_(p1), d_(p2), d_(p3), . . .

, such that p₁<p₂<p₃ . . . (Definition 1).

Definition 1 formalizes the term eligible. As evident from thedefinition, episodes are allowed to contain gaps. The only criterion isthat such episodes must maintain temporal order. Furthermore, an episodeep₁ can be defined to be a sub-episode of ep_(z), denoted by ep₁≦ep₂, ifep₁ is a sub-sequence of ep₂.

From the definition of sub-episodes it is evident that if ep₁≦ep₂, thenep₁∉W_(j) implies that ep₂∉W_(j). That is, the sub-episode property isanti-monotonic. The support of an episode ep_(i), denoted by sup_(epi),is equal to the number of windows W_(j), such that ep_(i)∈W_(j).Finally, a maximal frequent eligible episode can be defined as follows:An eligible episode ep_(i) is maximal frequent iff: sup_(epi)>τ; and e

ep_(j) such that ep_(i)≦ep_(j) (Definition 2).

An a priori approach (Agrawal and Srikant 1994) can be used to prune outepisodes when trying to find the maximally frequent ones (as therelation is anti-monotonic). From the training data set, windows of size“W” are considered and, through a priori counting as in (Patnaik et al.2011) of the entire corpus maximally frequent episodes (FE) and theircorresponding supports are found. Such maximally frequent episodes arereferred to herein as motifs. Here τ, the support threshold, is aparameter and this value is estimated through cross-validation keepingthe other values constant.

While predicting for the “i-th” day, motifs are sought that contain the“i-th” label (e.g., “A” though “J”) and labels of some of the previousdays. For this, the immediately preceding window of size W−1 isselected, since the label for the “i-th” day must already be part of themotifs. To find mixing coefficients of profile D_(n) for the “i-th” day,all those maximally frequent episodes are considered that end with D_(n)denoted by ep(D_(n)).

Let us denote the set of all such episodes by (ep(D_(n)))={ep(D_(n))₁, .. . , ep(D_(n))_(P)}, where P denotes the number of such episodes in theset. Then, within a window W_(i), support of the entire set is given by:

sup((ep(D _(n)))=Σ_(p) sup_(ep(Dn)p)   (12)

Then, the membership of a profile is given by:

$\begin{matrix}{{\Pr \left( {\left. {{\overset{\rightarrow}{X}}_{i} \in D_{n}} \middle| {\overset{\rightarrow}{X}}_{i - 1} \right.,\ldots \mspace{14mu},{\overset{\rightarrow}{X}}_{i - W - 1},C_{3}} \right)} = \frac{\sup \left( {\langle{{ep}\left( D_{n} \right)}\rangle} \right)}{\sum\limits_{n = 1}^{N}{\sup \left( {\langle{{ep}\left( D_{n} \right)}\rangle} \right)}}} & (13)\end{matrix}$

Where C₃ indicates classifier 3.

This counting step can be potentially very “expensive” (i.e.,significant computing resources may be required to perform the step).However, the inventors have discovered that for the current problem, thebest window sizes are small. Through cross-validation, the inventorshave selected a window of size 5 days (from the range 3 to 10 days).Hence, the counting step, even if naively implemented, is not tooexpensive.

Bayesian Model Averaging

The memberships obtained from the three predictors are aggregated andcombined to arrive at the final prediction as follows:

$\begin{matrix}\begin{matrix}{P\left( {\left. {{\overset{\rightarrow}{X}}_{i} \in D_{n}} \middle| D_{i,j} \right. = \left( {{{\overset{\rightarrow}{X}}_{i}\left( {1\text{:}j} \right)},\rho_{i,j},{\overset{\rightarrow}{X}}_{i - 1},{\overset{\rightarrow}{X}}_{i - 2},\ldots \mspace{14mu},{\overset{\rightarrow}{X}}_{{i - W - 1},}} \right)} \right)} \\{= {\sum\limits_{i = 1}^{3}{P\left( {{{\overset{\rightarrow}{X}}_{i} \in D_{n}},\left. C_{i} \middle| D_{i,j} \right.} \right)}}} \\{= {\sum\limits_{i = 1}^{3}{{P\left( {\left. {{\overset{\rightarrow}{X}}_{i} \in D_{n}} \middle| C_{i} \right.,D_{i,j}} \right)} \times {P\left( C_{i} \middle| D_{i,j} \right)}}}} \\{= {{{P\left( {\left. {{\overset{\rightarrow}{X}}_{i} \in D_{n}} \middle| C_{1} \right.,\rho_{i,j}} \right)}{P\left( C_{1} \middle| D_{i,j} \right)}} +}} \\{{{{P\left( {\left( {\left. {{\overset{\rightarrow}{X}}_{i} \in D_{n}} \middle| C_{2} \right.,{{\overset{\rightarrow}{X}}_{i}\left( {1\text{:}j} \right)}} \right){P\left( C_{2} \middle| D_{i,j} \right)}} \right)}{P\left( C_{2} \middle| D_{i,j} \right)}} +}} \\{{{P\begin{pmatrix}{\left. {{\overset{\rightarrow}{X}}_{i} \in D_{n}} \middle| C_{3} \right.,{\overset{\rightarrow}{X}}_{i - 1},} \\{{\overset{\rightarrow}{X}}_{i - 2},\ldots \mspace{14mu},{\overset{\rightarrow}{X}}_{{i - W - 1},}}\end{pmatrix}}{P\left( C_{3} \middle| D_{i,j} \right)}}}\end{matrix} & \begin{matrix}\begin{matrix}\begin{matrix}(14) \\\; \\(15) \\\;\end{matrix} \\(16) \\\;\end{matrix} \\(17)\end{matrix}\end{matrix}$

Bayesian Model Averaging (BMA)), as outlined by (Raftery at al., 2005),is used to operate on mutually exclusive parts of the data to computervalues of: P(C_(l)|D_(i,j)). BMA is performed in accordance with thefundamental relationship:

P(C _(l) |D _(i,j))∝P(D _(i,j) |C _(l))×P(C _(l))   (18)

Assuming a uniform prior for the classifiers, equation (18) above can bewritten as:

P(C _(l) |D _(i,j))∝P(D _(i,j) |C _(l))   (19)

The values of P(D_(i,j)|C_(l)) can be viewed as the proportion of dataexplained (truly predicted) when using classifier C_(i). This can beestimated by constructing a confusion matrix and taking the relativefrequency of true positives as an estimate. It is noted that it is notnecessary to assume uniform priors. In at least some cases, the priorsare estimated from the data.

Predicted PV Generation Values

Finally, the near-future generation values for the corresponding PVarray can be estimated (predicted) as follows:

$\begin{matrix}{\mspace{20mu} {\left( {{\overset{\rightarrow}{X}}_{i}\left( {j + {1\text{:}J}} \right)} \middle| D_{i,j} \right)}} & (20) \\{\mspace{20mu} {= {\Sigma_{{\overset{\rightarrow}{X}}_{i}{({j + {1\text{:}j}})}}{{\overset{\rightarrow}{X}}_{i}\left( {j + {1\text{:}J}} \right)}{P\left( {{\overset{\rightarrow}{X}}_{i}\left( {j + {1\text{:}J}} \right)} \middle| D_{i,j} \right)}}}} & (21) \\{\mspace{20mu} {\sum_{{\overset{\rightarrow}{X}}_{i}{({{j + 1}:J})}}{{{\overset{\rightarrow}{X}}_{i}\left( {j + {1\text{:}J}} \right)}{\sum\limits_{n = 1}^{N}{P\left( {{{\overset{\rightarrow}{X}}_{i}\left( {j + {1\text{:}J}} \right)},\left. {{\overset{\rightarrow}{X}}_{i} \in D_{n}} \middle| D_{i,j} \right.} \right)}}}}} & (22) \\{= {\sum_{{\overset{\rightarrow}{X}}_{i}{({j + {1\text{:}J}})}}{{{\overset{\rightarrow}{X}}_{i}\left( {j + {1\text{:}J}} \right)}{\sum\limits_{n = 1}^{N}{{P\left( {{\overset{\rightarrow}{X}}_{i}\left( {j + {1\text{:}J}} \right)} \middle| {{\overset{\rightarrow}{X}}_{i} \in D_{n}} \right)} \times {P\left( {{\overset{\rightarrow}{X}}_{i} \in D_{n}} \middle| D_{i,j} \right)}}}}}} & (23) \\{= {\sum_{n}{\sum_{{\overset{\rightarrow}{X}}_{i}{({j + {1\text{:}J}})}}{\left( {{{\overset{\rightarrow}{X}}_{i}\left( {j + {1\text{:}J}} \right)}{P\left( {{\overset{\rightarrow}{X}}_{i}\left( {j + {1\text{:}J}} \right)} \middle| {{\overset{\rightarrow}{X}}_{i} \in D_{n}} \right)}} \right) \times {P\left( {{\overset{\rightarrow}{X}}_{i} \in D_{n}} \middle| D_{i,j} \right)}}}}} & (24) \\{\mspace{20mu} {= {\sum_{n}{{{\overset{\rightarrow}{\mu}}_{n}\left( {j + {1\text{:}J}} \right)}{P\left( {{\overset{\rightarrow}{X}}_{i} \in D_{n}} \middle| D_{i,j} \right)}}}}} & (25)\end{matrix}$

Illustrative Parameters

Some heuristics are applied to compute the probabilities of the Bayesianensemble method. The likelihood needs to be estimated for theclassifiers (C_(l)). In one example, it is assumed that the valuesP(D_(i,j)|C_(l)) are dependant only on the hour of the day (i.e., theeffect of seasons on classifier beliefs is neglected). Under thisassumption, ideally the values need to be estimated for each hour.Instead, a simple heuristic is applied.

In the present example, it is assumed that the data is progressivelyexplained better by the k-NN estimator (C₂). while the motif predictor,which estimates in a global sense without looking at the data), explainsthe data in a consistent manner irrespective of the hour of the day.These heuristics are given below:

P(D _(i,j) |C ₃)=θ  (26a)

P(D _(i,j) |C ₂)=min(1−θ, α×j+β)   (26b)

P(D _(i,j) |C ₁)=1−θ−P(D _(i,j) |C ₂)   (26c)

Where all of the values on the left hand side of the equations arebounded between 0.0 and 1.0 during computation. In one or more othercases, the above heuristics are not used, and the probabilities areestimated from the data.

Predictor Training

For all three predictors, or models, in the present example (i.e., NB,k-NN and MP), parameters (including the heuristic combination weights)were selected by training over a range of values and picking the onewith least cross-validation error. The basic daily generation profileswere extracted by k-means clustering over the entire dataset. The numberof clusters (i.e., daily generation profiles) were set at 10 based oncross-validation over 5 to 15 clusters. For the motif-based predictor, athreshold support parameter of τ=70 and a window size of 5 were used.

First Illustrative System

Attention is directed now FIG. 1, which depicts a block schematicdiagram of a system 100 according to the present teachings. The system100 is illustrative and non-limiting with respect to the presentteachings. Other systems, particular elements, functional entities,operations or combinations thereof can also be defined and used.

The system 100 includes a photovoltaic (PV) array 102. The PV array 102is defined by a plurality of PV cells (or panels of plural cells each)configured to generate electrical energy by direct conversion ofincident sunlight 104. Electrical generation by the PV array 102 ismeasured and quantified, and corresponding data 106 is used (i.e.,formatted) to define present-day generation data 108. In turn, such data106 as acquired previously is used to define recent historicalgeneration data 110. Such recent historical generation data 110 can berepresentative of the most recent three days, most recent five days, orany other suitable time span.

The system 100 also includes weather forecast data 112 regarding presentand near-future (e.g., next 48 hours) weather conditions 114. In oneexample, the weather forecast data 112 is acquired from anInternet-based resource, or is aggregated after acquisition from aplurality of respective resources. Weather forecast data 112 can beacquired by way of other suitable sources as well, such as local weatherinstrumentation, or another suitable source.

The system 100 also includes naïve Bayesian predictor (NBP) 116. The NBP116 includes (or uses) a trained naïve Bayesian model to provide aweighted prediction 118 of future electrical generation by the PV array102 based upon the weather forecast data 112. In one example, theweighted prediction 118 is scaled and quantified in the range of 0.0 to1.0. Other scaling factors or prediction formats can also be used.Additional description of the NBP 116 is provided hereinafter.

The system 100 also includes a k-nearest neighbor (k-NN) predictor (NNP)120. The NNP 120 uses the present-day generation data 108 to provide aweighted prediction 122 of future electrical generation by the PV array102. In particular, the weighted prediction 122 is derived usingelectrical generation data observed (or acquired) earlier that same day.In one example, the weighted prediction 122 is scaled and quantified irethe range of 0.0 to 1.0, consistent with that of the weight prediction118. Other scaling factors or prediction formats can also be used.Additional description of the NNP 120 is provided hereinafter.

The system 100 further includes a motif predictor (MP) 124. The MP 124uses the recent historical generation data 110 to provide a weightedprediction 126 of future electrical generation by the PV array 102. Moreparticularly, the weighted prediction 126 is derived using repeatingpatterns or “motifs” identified within an historical sequence of dailyelectrical generation profiles for the PV array 102. In one example, theweighted prediction 126 is scaled and quantified in the range of 0.0 to1.0. Other scaling factors or prediction formats can also be used.Additional description of the MP 124 is provided hereinafter.

The system 100 also includes a Bayesian model averaging (BMA)functionality 128. The BMA 128 calculates a Bayesian average of thethree respective predictions 118, 122 and 126, in order to derive afinal prediction 130 of near-future electrical generation by the PVarray 102. In one example, the prediction 130 includes (i.e., isformatted to present) a predicted electrical generation profile (e.g.,hour-by-hour output) for the remainder of the present day. In anotherexample, the prediction 130 includes a total electrical generation(e.g., kilowatt-hours) for the next day. Other data, formats orgranularities can also be predicted.

The system 100 is directed to using weather forecast information, aswell as recently observed and historical (respectively) generation data,in order to predict electrical generation for the near-future for aparticular PV array. The system 100 determines or derives the finalprediction by way of first determining three respective predictions,which are then used as input to a Bayesian averaging scheme. Theparticular predictions and the Bayesian averaging are now described inmore rigorous detail below.

Illustrative PV Generation Data

Reference is now made to FIG. 2, which depicts photovoltaic generationdata and a process for deriving (i.e., discovering) a set of generationprofiles. The particular data, formatting, sampling intervals (i.e.,granularity) and other characteristics are illustrative and non-limitingin nature. Thus, the present teachings contemplate other data andprocesses having respectively varying characteristics.

An illustrative vector 200, also identified as vector “Xi”, includeshourly generation data for a PV array (e.g., 102). As depicted in theexam pie in FIG. 2, the vector 200 includes thirteen distinct datavalues (dimensions) in units of kilowatt-hours (kWh), each representingan electrical generation total for a respective hour (e.g., 6 AM to 6 PMlocal time). However, the data vector 200 is understood to include atotal of twenty-four hourly data values. Null or zero values, such asthose corresponding to night-time hours, are not depicted in theinterest of clarity, and can optionally be ignored during further dataprocessing. The vector 200 is also referred to as a daily generationvector for purposes herein.

The vector 200 is aggregated with other respective daily generationvectors to define a generation matrix 202, also identified as matrix“A”. In one example, the generation matrix 202 includes daily generationdata for an entire year. Other data quantities (time spans) can also beused. As such, the generation matrix 202 represents long-term historicalgeneration data for a corresponding PV array.

The generation matrix 202 is then subjected to a clustering operation204 so as to derive multiple distinct daily generation profiles 206 (tendistinct profiles are illustrated in FIG. 2). The generation profilesare alphabetically labeled as “A”, “B”, “C”, “D”, “E”, “F”, “G”, “H”,“I” and “J”, respectively. Other suitable numbers of daily generationprofiles (defining a set) can also be derived or used. In one example,the clustering operation 204 is performed in accordance with the ProfileDiscovery described above. Other suitable clustering operations can alsobe used.

Each of the daily generation profiles (profiles) 206, “A”-“J”respectively, characterizes hourly electrical generation for the PVarray for a time span of twenty-four hours or less. For example, timespans of twelve hours, sixteen hours, and so on, can be used inaccordance with the maximum daylight hours for a particular PV arraylocation, provided that all of the profiles 206 within a given set areformatted to the same time span.

The profiles 206 collectively represent a set of distinct patterns ortemplates that can be individually compared to the actual electricalgeneration of a particular day in a “nearest fit” or “closest match”manner. For example, the actual hourly electrical generation for a givenday might be best represented by the profile “B”, while the generationof another day is best represented by the profile “F”, and so on.

Illustrative Weather Data

Reference is now made to FIG. 3, which depicts weather data and aprocess for deriving a trained naïve Bayesian model. The particulardata, formatting, sampling intervals (i.e., granularity) and othercharacteristics are illustrative and non-limiting in nature. Thus, thepresent teachings contemplate other data and processes havingrespectively varying characteristics.

An illustrative vector 300, also identified as vector “Wi”, includeshourly weather data for a particular day. As depicted, the vector 300includes thirteen dimensions, each dimension including present airtemperature in degrees Fahrenheit, relative humidity in percent, one ofseveral predefined weather condition descriptors, time of sunrise forthat day, and time of sunset for that day. Entries corresponding tonight-time hours are not depicted in the interest of clarity, and canoptionally be ignored during further data processing. However, the datavector 300 is understood to include a total of twenty-four hourly datavalues. The vector 300 is also referred to as a historical weathervector for purposes herein. Present weather data can also be formattedin the same way.

The vector 300 is aggregated with other respective daily weather vectorsto define a weather matrix 302, also identified as matrix “B”. In oneexample, the weather matrix 302 includes daily weather data for anentire year. Other data quantities (time ranges) can also be used. Thus,the weather matrix 302 is also referred to as long-term weather data.

The weather matrix 302 and the set of daily generation profiles 206 arethen input to a training model generator 304 so as to derive a trainednaïve Bayesian model (TNBM) 306. In one example, the training modelgenerator 304 operates in accordance with the Predictor Trainingdescribed above. Other suitable training operations can also be used.The TNBM 306 is then used thereafter as a naïve Bayesian predictor(e.g., 116) to provide a corresponding prediction (e.g., 118) inaccordance with weather forecast data (e.g., 112) provided as inputthereto.

Illustrative Motif Set Derivation

Reference is now made to FIG. 4, which depicts a process for deriving(i.e., discovering) a set of motifs (repeating patterns) for historicalPV generation data. The particular data, formatting, and othercharacteristics are illustrative and non-limiting in nature. Thus, thepresent teachings contemplate other data and processes havingrespectively varying characteristics.

The generation matrix 202 and the set of daily generation profiles 206,respectively described above, are subject to a profile matchingoperation 400. The profile matching operation 400 compares each day'selectrical generation, as provided by the generation matrix 202, withthe respective profiles “A”-“J” so to derive an historical sequence 402of daily generation profiles. The sequence 402 thus represents the “bestapproximation” of the daily electrical generation (for the correspondingPV array), in chronological order, for one year. The historical sequence402 is thus depicted as a stream of alphabetic labels, accordingly.

The historical sequence 402 is now subject to a window generationoperation 404, which parses the historical sequence 402 into distinctwindows 406 of uniform length. As depicted, the windows 406 are all fivedays each. Other suitable window lengths can also be used.

The windows 406 are then subject to maximal episodes identification 408,which operates to identify repeating patterns within the windows 406.Repeating patterns (or individual motifs) are correspondingly rankedbased on frequency of occurrence and a hierarchical set of such motifs410 is derived. The set of motifs 410 is used by a motif predictor(e.g., 124) to provide a corresponding prediction 126) in accordancewith recent historical generation data (e.g., 110). As a non-limitingexample, such a motif predictor might provide a prediction based uponthe most recent five days of PV generation data. Other suitable uses oroperations can also be performed.

Illustrative Methods

Attention is turned now to FIGS. 5A and 5B, which depict flow diagramsof respective methods in accordance with the present teachings. Themethods of FIGS. 5A-5B depict particular steps and orders of execution.However, other methods including other steps, omitting one or more ofthe depicted steps, or proceeding in other orders of execution can alsobe defined and used. Thus, the present teachings contemplate othermethods that can be respectively varied. Reference is also made to FIGS.1, 2, 3 and 4 in the interest of understanding the method of FIGS.5A-5B.

The method of FIG. 5A is, generally and without limitation, directed toprofile discovery and the training of respective predictors. As such,the method of FIG. 5A can be performed only once, or on an infrequentbasis, as a preparation toward making near-future predictions. In turn,the method of FIG. 5B is, generally and without limitation, used inmaking near-future PV generation predictions by way of the profiles andpredictors derived by way of the method of FIG. 5A. Thus, the method ofFIG. 56 can be performed as a continuation of, or repeatedly anddistinct from, the method of FIG. 5A.

At 500, generation profiles are derived from historical PV generationdata. For purposes of an illustrative example, a plurality of distinctdaily generation vectors 200 are aggregated to define a long-termhistorical generation matrix 202, including one year of generation datafor a particular PV array 102. The matrix 202 is then subject to aclustering operation 204 resulting in the derivation of ten distinctdaily generation profiles 206, labeled “A” through “J”, respectively.Such an operation is performed by, or using, a computer.

At 502, a matrix of weather vectors is derived from historical weatherdata. Continuing the present example, a plurality of daily weathervectors 300 are aggregated to define a weather matrix 302, representingone year of weather data for the location of the PV array 102. Acomputer is also used to perform step 502.

At 504, a naïve Bayesian model is trained using the generation profilesand the historical weather matrix. In the present example, the dailygeneration profiles 206 and the weather matrix 302 are provided to atraining model generator 304. A computer embodies the model generator304 that performs the calculations and/or data processing as required togenerate a trained naïve Bayesian model 306. That is, a computeroperating according to a program code performs the steps needed togenerate the trained naïve Bayesian model 306. The trained naïveBayesian model 306 can then be used by the naïve Bayesian predictor 116.

At 506, a parameter “k” is determined for a k-nearest neighbor (k-NN)predictor. In the present example, “k” is determined throughcross-validation, using the set of daily generation profiles 206 and thetraining data. Other appropriate methods can also be used to determine“k”. The k-NN predictor 120 can use the parameter “k” in making itsrespective predictions. This operation is also performed using acomputer.

At 508, a set of motifs is derived from historical generation data.Within the present example, the matrix of generation data 202 and theset of generation profiles 206 are subject to a profile matchingoperation 400, resulting in an historical sequence 402 of dailygeneration profiles. This sequence 402, representing a historical yearof PV generation arranged in chronological order, is subject to a windowgeneration operation 404. The window generation 404 parses (divides, orsplits) the sequence 402 into a plurality of windows 406, each beingfive days long. The windows 406 are then searched for maximal episodesby an operation 408, resulting in a set of motifs (i.e., repeatingpatterns) 410. A computer is used to perform step 508.

At 510, a naïve Bayesian prediction is calculated using present weatherdata. In the present example, weather forecast data 112 is provided tothe naïve Bayesian predictor 116. The naïve Bayesian predictor 116 usesthe trained naïve Bayesian model derived at 504 above to provide aprediction 118 of near-future PV generation. In one example, theprediction 118 is formatted as a weighted value in the range of 0.0 to1.0. A computer is also used to perform step 510.

At 512, a k-nearest neighbor prediction is calculated using presentgeneration data. In the present example, PV generation data 108 fromearlier the same day (e.g., the immediately previous four hours) areprovided to the k-NN predictor 120. The k-NN predictor 120 compares thepresent-day generation data 108 to the daily generation profiles 206 toderive a prediction 122 of near-future PV generation. In one example,the prediction 122 is formatted as a weighted value in the range of 0.0to 1.0. A computer is also used to perform step 512.

At 514, a motif prediction is calculated using recent historicalgeneration data. In the present example, recent historical generationdata 110 (e.g., the most recent five days), is provided to the motifpredictor 124. The motif predictor 124 compares this most recentgeneration data to the set of motifs 410 derived at 508 above to providea prediction 126 of near-future PV generation. In one example, theprediction 126 is formatted as a weighted value in the range of 0.0 to1.0. A computer is also used to perform step 514.

At 516, the three respective predictions are subject to Bayesian modelaveraging in order to predict near-future PV generation. In the presentexample, the respective predictions (or weighted values) 118, 122 and126 are subject to a Bayesian averaging operation 128 to derive aprediction 130. The prediction 130 expresses the expected electricalgeneration, as an hourly profile, for the remaining hours of the presentday. A computer is also used to perform step 516.

Illustrative Computer-Based System

Reference is made now to FIG. 6, which depicts a block schematic of acomputer-based system 600 according to one example of the presentteachings. The system 600 is illustrative and non-limiting, and othersystems having respectively varying constituencies or operations canalso be used according to the present teachings.

The system 600 includes a computer 602. The computer 602 includes aprocessor 604 to perform various operations in accordance with amachine-readable program code. The computer 602 also includes a tangiblestorage media 606 including a machine-readable program code 608. Themedia 606 can be variously defined, and non-volatile memory, optical ormagnetic media, programmable read-only memory or other suitable mediatypes can be used.

The program code 608 is configured to cause the processor 604 to performvarious operations in accordance with the present teachings. Thus, theprocessor 604 can perform data acquisition, calculations, dataprocessing and other operations toward predicting near-future electricalgeneration for a corresponding PV array in accordance with the programcode 608.

The computer 602 also includes other resources 610. The other resourcescan include any suitable circuitry, elements or constituents as requiredor desired for normal operations of the computer 602. Non-limitingexamples of such other resources 610 include a power supply, large-scalemagnetic storage media, and so on. Other suitable resources can also beused. The computer 602 further includes network communications circuitry611 to couple the computer 602 in bidirectional digital (i.e., data)communications with the Internet 622, a local or wide-area network, awireless network, and so on.

The computer 602 also includes a monitor (i.e., electronic display) 612,a keyboard 614 and a computer mouse 616, as are respectively familiar toone having ordinary skill in the computer or related arts. The foregoingelements 612-616 can be used to perform their respective conventionalfunctions, and further elaboration is not germane to understanding thepresent teachings.

The system 600 also includes weather instrumentation 618. The weatherinstrumentation 618 is configured to provide data to the computer 602regarding present weather 114. The computer 602 can acquire weather suchas temperature, humidity, wind speed, insolation or other factors withany suitable chronological granularity (e.g., hourly, quarter-hourly,and so on). The computer 602 can thus accumulate historical weatherinformation by way of the weather instrumentation 618.

The system 600 also includes a weather service receiver 620. The weatherservice receiver 620 is configured to acquire weather forecast data(e.g., 112) from the Internet 622 and to provide that data to thecomputer 602. Thus, the computer 602 can derive (or calculate) naïveBayesian predictions (e.g., 118) using the forecast data acquired by wayof the weather service receiver 620. Other uses for data or informationobtained by way of the weather service receiver 620 can also beperformed.

The system 600 also includes PV generation instrumentation 624. The PVgeneration instrumentation 624 is configured to measure (i.e., meter)electrical production by the PV array 102 and to provide correspondingdata to the computer 602. Instantaneous voltage and current can bemeasured, and values derived or time-Integrated there from (e.g.,amp-hours, kilowatt-hours) can thus be acquired and stored. Thus,present day generation data (e.g., 108) as well as recent or long-termhistorical generation data can be acquired and used by the computer 602to calculate k-NN predictions (e.g., 122) and motif predictions (e.g.,126).

The system 600 generally depicts a computer-based system forimplementing the present teachings. Calculations and Bayesian averaging,as well as model training and derivation, and provisions of near-futuregeneration predictions can be performed by the computer 602 inaccordance with the present teachings.

In general, the present teachings contemplate systems and methods formaking predictions for near-future electrical generation by aphotovoltaic array. A plurality of respective predictors, or calculationmodels, are derived and prepared in accordance with historical weatherand generation data for the particular PV array in question. Threepredictor types are described herein, but the present teachingscontemplate that other predictors, or any suitable number of suchpredictors, can also be used. A computer, operating by way ofmachine-readable program code, can be used to prepare the models,perform calculations, and provide predictions.

In one example, present-day generation, weather forecast information,and recent past electrical generation are used as input data to threerespective predictors. Each of the predictors derives or calculates aprediction, or weighted value, regarding near-future generation by thePV array. These values are then subjected to Bayesian averaging toarrive at a single prediction for near-future generation. Such aprediction can pertain to the remaining daylight hours of the presentday. Other time spans can also be used.

The prediction can be used in workload or production planning, workertime scheduling, load shedding, or other logistics or operationsaccording to the anticipated electrical production for that PV array.Increased productivity and efficiency, and reduced operating cost andwaste, can be achieved accordingly.

In general, the foregoing description is intended to be illustrative andnot restrictive. Many embodiments and applications other than theexamples provided would be apparent to those of skill in the art uponreading the above description. The scope of the invention should bedetermined, not with reference to the above description, but shouldinstead be determined with reference to the appended claims, along withthe full scope of equivalents to which such claims are entitled. It isanticipated and intended that future developments will occur in the artsdiscussed herein, and that the disclosed systems and methods will beincorporated into such future embodiments. In sure, it should beunderstood that the invention is capable of modification and variationand is limited only by the following claims.

What is claimed is:
 1. A method performed using a computer, comprising:deriving a first weighted prediction using weather forecast data for apresent day; deriving a second weighted prediction using present daygeneration data for a photovoltaic system, the present day generationdata acquired by way of instrumentation coupled to the computer and tothe photovoltaic system; deriving a third weighted prediction usingrecent historical generation data for the photovoltaic system; derivinga Bayesian model average of at least the first and the second and thethird weighted predictions; and predicting a near-future generation bythe photovoltaic system using the Bayesian model average.
 2. The methodaccording to claim 1, the weather forecast data acquired by the computerby way of the Internet.
 3. The method according to claim 1, the derivingthe first weighted prediction performed by processing the weatherforecast data for the present day using a trained naïve Bayesian model.4. The method according to claim 1, the deriving the second weightedprediction performed by processing the present day generation data usinga k-nearest neighbor predictor.
 5. The method according to claim 1, thederiving he third weighted prediction performed by processing the recenthistorical generation data using a motif predictor.
 6. The methodaccording to claim 1 further comprising deriving a plurality of dailygeneration profiles from long-term historical generation data.
 7. Themethod according to claim 6 further comprising: arranging the dailygeneration profiles in a historical sequence; parsing the historicalsequence into a plurality of windows, the windows having equal numbersof the daily generation profiles; identifying maximal episodes withinthe plurality of windows; and deriving a motif predictor using themaximal episodes, the motif predictor used to derive the third weightedprediction.
 8. A system, comprising a photovoltaic device;instrumentation to provide data corresponding to a present generation ofelectrical energy by the photovoltaic device; and a computer to receivethe data from the instrumentation, the computer to derive a predictionof near-future generation by the photovoltaic device using the presentgeneration data and recent historical generation data and weatherforecast data.
 9. The system according to claim 8, the computer toreceive the weather forecast data by way of an Internet-based resource.10. The system according to claim 8, the computer to derive a pluralityof weighted predictions using the present generation data and historicalgeneration data and the weather forecast data, the computer to derivethe prediction of near-future generation by way of a Bayesian modelaverage of the plurality of weighted predictions.
 11. The systemaccording to claim 10, the computer to derive at least one of theweighted predictions by way of a trained naïve Bayesian model, a motifpredictor, or a k-nearest neighbor predictor.
 12. A system according toclaim 8, the computer including a storage media having a program code,the program code to cause the computer to derive the prediction ofnear-future generation.
 13. The system according to claim 8, thecomputer to derive a plurality of daily generation profiles from thehistorical generation data.
 14. The system according to claim 13, thecomputer to derive a trained naïve Bayesian model from the historicalweather data and the daily generation profiles.
 15. The system accordingto claim 13, the computer to parse a historical sequence of the dailygeneration profiles into a plurality of equal-length windows, thecomputer to identify maximal episodes within the plurality of windows soas derive a set of motifs for use by a motif predictor.
 16. A storagemedia including a program code, the program code to cause a processorto: derive a first weighted prediction using weather forecast data;derive a second weighted prediction using present day generation datafor a photovoltaic system; derive a third weighted prediction usingrecent historical generation data for the photovoltaic system; andpredict a near-future generation by the photovoltaic system by way ofcalculating a Bayesian model average of the first and the second and thethird weighted predictions.
 17. The storage media according to claim 1code to further cause a processor to: derive a plurality of dailygeneration profiles from long-term historical generation data for thephotovoltaic system; arrange the daily generation profiles into anhistorical sequence: parse the historical sequence into a plurality ofequal-length windows; identify maximal episodes within the plurality ofwindows; and train a motif predictor using the maximal episodes.
 18. Thestorage media according to claim 17, the program code to further cause aprocessor to train a naïve Bayesian model using historical weather dataand the daily generation profiles.
 19. The storage media according toclaim 16, the program code to further cause a processor to acquire theweather forecast data by way of communication with an Internet-basedresource.
 20. The storage media according to claim 16, the program codeto further cause a processor to: derive the first weighted predictionusing a naïve Bayesian predictor; derive the second weighted predictionusing a k-nearest neighbor predictor; and derive the third weightedprediction using a motif predictor.